package com.jet.goods.service;

import com.jet.core.model.vo.PageVo;
import com.jet.goods.domain.dto.SpuDto;
import com.jet.goods.domain.entity.GoodsSpu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jet.goods.domain.query.SpuPageQuery;
import com.jet.goods.domain.query.SpuQuery;
import com.jet.goods.domain.vo.SpuBaseVo;
import com.jet.goods.domain.vo.SpuDetailVo;
import com.jet.goods.domain.vo.SpuListVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author author
 * @since 2025-03-04
 */
public interface IGoodsSpuService extends IService<GoodsSpu> {

    void create(long merchantNo, String accountId, SpuDto dto);

    void edit(long merchantNo, String accountId, String id, SpuDto dto);

    void editStatus(long merchantNo, String accountId, String id, int status);

    boolean existsBySpuNo(long merchantNo, String spuNo);

    void importCreate(long merchantNo, String accountId, SpuDto dto);

    void importEdit(long merchantNo, String accountId, String id, SpuDto dto);

    void spuImport(long merchantNo, String accountId, long syncStoreNo, MultipartFile file);

    void deleted(long merchantNo, String id);

    SpuBaseVo findBaseById(long merchantNo, String id);

    SpuDetailVo findDetailById(long merchantNo, String id);

    SpuDetailVo findDetailBySpuNo(long merchantNo, String spuNo);

    List<SpuBaseVo> findBaseByKeyword(long merchantNo, String keyword);

    List<SpuBaseVo> findBaseListByIds(long merchantNo, List<String> ids);

    PageVo<SpuListVo> page(long merchantNo, SpuPageQuery query);

    List<SpuListVo> list(long merchantNo, SpuQuery query);
}
